package rpg.narrativa;

import java.util.Scanner;
import rpg.personagem.Mensageiro;
import rpg.cenario.*;

/**
 * Narrativa
 *
 * @author Gabriel Bronzatti Moro
 * @since 08/01/2013
 * @version 0.1
 */
public class Narrativa {

    private Mensageiro mensageiro;
    private Cenario cenario;
    private ProcessarTexto processar;
    private Scanner entradaDeDados;
    private static final int PERDE_AO_ANDAR = 10;

    public Narrativa() {
        this.mensageiro = new Mensageiro();
        this.cenario = new Cenario();
        this.processar = new ProcessarTexto();
        this.entradaDeDados = new Scanner(System.in);
    }

    /**
     * Inicia o rpg e seta o nome do mensageiro
     *
     */
    public void iniciarJogo() {
        processar.processar("inicio", 4);
        String nome = entradaTexto();//apartir disso já deve ser setado o nome o mensageiro
        this.mensageiro.setNome(nome);
        System.out.println("Bem-vindo mensageiro: " + this.mensageiro.getNome());
    }

    /**
     * Cada local possui: amigo FIXO, inimigo FIXO, desafio...
     */
    public void criarLocais() {
    }

    /**
     * finalizarJogo refere-se a entrega da carta do mensageiro
     */
    public void finalizarJogo() {
        processar.processar("fim1", 6);
        int opcoes = entradaInteira();
        if (opcoes== 0) {
            processar.processar("fim2", 4);
            System.exit(0);
        } else {
            System.err.println("Jogo finalizado, game over." + "\nCarta não entregue.");
        }
    }

    /**
     * paradaCenario pergunta o qual ação o mensageiro quer realizar
     *
     * @return
     */
    public void paradaCenario() {
        processar.processar("paradaCenario", 5);
        int opcoes= entradaInteira();
       switch(opcoes){
           case 1:
               //Mensageiro escolheu seguir em frente
               break;
           case 2:
               //Mensageiro ver inventario
               break;
           case 3:
               //Mensageiro esoolheu usar algum item
           break;
           case 4:
               //Mensageiro escolheu ver tempo
       }
    }

    public int entradaInteira() {
        int dado = this.entradaDeDados.nextInt();
        return dado;
    }

    public String entradaTexto() {
        String dado = this.entradaDeDados.nextLine();
        return dado;
    }
    public Mensageiro getMensageiro(){
        return mensageiro;
    }
}